Management control subsystem for multiprogrammed data processing system

ABSTRACT

A multiprogrammed data processing system, wherein working storage space in which user programs are executed is also employed for executing certain portions of the operating system in providing the management control functions required to implement the multiprogrammed function of the data processing system.

D United States Patent n 3,618,045

[72] invento s Doll! 1- CI IIIIIRI 3,297,999 1/1967 Shimabukuro IMO/172.5 Lllldnle; 3,317,898 5/1967 Hellerman 340/ 172.5 William J. llellner, Bohemia, both of Pa. 3,337,854 8/1967 Cray et a1. 340/1725 [21] Appl. No. 821,8" 3,359,544 12/1967 Macon et a1. 340/1725 [22] Filed May 5,1969 3,412,382 11/1968 Couleur et al. 340/1725 [45] Patented Nov. 2, I911 Prim ry Examiner-Paul .I. Henon [73] Assagnee Honeywell Information Syztema, he. Axum", Emmm" R F. Chapman Attorneys-Edward W. Hughes, Frank L. Neuhauser, Oscar B. 54 1 MANAGEMENT CONTROL sunsvs'nm FOR and Law Elbmger MULTIPROGRAMMED DATA PROCESSING SYSTEM 10 Claims, 54 Drawing Figs.

[52] US. Cl 340/ 172.5

9/96 ABSTRACT: A multiprogrammed data processing system, [50] Field of Search 340/1725 wherein working storage space in which user programs are I i ecuted is also employed for executing certain portions of the [56] CM operating system in providing the management control func- UNITED STATES PATENTS tions required to implement the multiprogrammed function of 3,229,260 1/1966 Falkofl' 340/1725 the data processing system.

PROCESSOR m mum m CONTIIOILEI comma WY I y ,30 G [a 1/0 110 no CONTROLLER con'moLLER conmouin T0 110 IJGVICES AND AUXILIII'Y STORES PATENTEDuuvz I9?! I 3,618,045

SHEET 01 0F 54 PROCESSOR PROCESSOR MEMORY 0 MEMORY MEMORY 4-D MEMORY CONTROLLER CONTROLLER HO HO HO CONTROLLER CONTROLLER CONTROLLER Y Y TO [/0 DEVICES AND AUXILIARY STORES F115- 1 INVENTOR,

A T TORNE Y PATENTEU NUVZ I971 sum 02 or 54 TO MEMORY CONTROLLERS do M038 0:-

PATENIED IIBI2 IBII 0 |Oc INTERRUPT VECTORS COMMUNICATION REGION PRIMARY MAILBOXES PHYSICAL CHANNEL TABLES I IZIO S ECONDARY MAI LBOX ES PRIMARY SCT BLOCK SECONDARY SCT BLOCK if I27 i I PROGRAM PATCH TABLE MODULE DIRECTORY (.CALL WORD TABLE) DISPATCHER (.MDISP) FAULT PROCESSOR J (.MFALTI I I/O SUPERVISOR (.M I 08) CHANNEL MODULES I MME MODULES WORKING STORAGE TOPOLOGY SHEET RESIDENT MONITOR REGION IOO i T T T T '-"I I I J uxzogg, SSA PRIVILEGED SLAVE PROGRAM |O|- (GEPOPI I I |04- ssA I l I |O3-- SLAVE PROGRAM I I i I06 SSA l 105 SLAVE PROGRAM L m r H- I I l l I I I I I E I o7 PRIVILEGED I A iLAVE PROGRAM SYSTEM I ssA r AND I SLAVE I PROGRAMs I I I09- SLAVE PROGRAM I I n2 SSA I all SLAVE PROGRAM l if I I I I I I I I .4 I I I I l l I I I E- C O Hex. ssA

n5 SLAVE PROGRAM I IS 3 .CRBA4 .CRTC L .CRFRS .CRDIT .CRSCT .CRMDD .CRPRG .CRLAL .CRTRC .CREXT .CRIOI .CRIO2 .CRIOES .CRIO4 PATENIED IIUVZ I9?! SHEET .CRBA4 TABLE .CALL COUNTER .SREG STACK POINTERS I30 DEVICE INDEX TABLE 7;

8 CT POINTER MODULE .CALL WORD TABLE .C RPRG TABLE .CRLAL TABLE TRACE BLOCK .EXIT TRANSFER VECTOR PHYSICAL CHANNEL TABLE BLOCK IOOO IIOO IIOI Oh [IF 54 L/IZS ,CRCTI I300 .CRCT2 |3o| .CRCT3 PRIMARY I302 .CRCT4 SCT I303 BLOCK SECONDARY SCT v|2s BLOCK ISIT I540 MODULE DIRECTORY (.CALL WORD TABLE) 1 EXPANDED RESIDENT MONITOR POINTER TO PRIMARYI SCT FOR MODULE I LINK INUMBER 0F LINKS .CRDIT TABLE ENTRY 0 I7 29 35 SECONDARY I NUMBER OF i I SCT POINTER {SECONDARY scT's;

.cRscT GATE .cRscT WORD PAIR .CALL WORD TABLE: NUMBER OF I POINTER {TABLE ENTRIEs} .CRMDD WORD 0 I7 35 l PROGRAM NUMBER 1 I .CRPRG TABLE WORD LAL .CRLAL TABLE WORD PRIMARY SCT PATENIEUIIDVZ I97I 3.618.045

SHEET 05 [1F 54 I l I I x4 .CRIOI LAL 1 IMOD.

.CRIOZ A w RD CRBA4 T BLE o 24 GRID? o 35 ILOGICAL PRI ICHAN.INDEX GU04 ToTAL cALLs PHYSICAL CHANNEL TABLE .CRTCL WORD m 0 I2 I6 I8 23 5 :cIIANuoci I PHYSICAL men 0 I7 29 35 I I#I ICHAN. INDEX I I ADDRESS OF .SREGS PoINTER I 1 I I/O QUEUE I 'CRCTZ I SECONDARY SCT I POINTER 'CRCT3 .CRFRS TABLE WORD ADDRESS OF CHANNEL MODULE 5mm 0 I7 35 0 (a II I8 23 35 DEVICEIDEVICEI I ILOGICAL P 1 TYPE: I ISTATUSICHANJNDEX SECONDARY SCT BLOCK ENTRY o 3 5 II I IT 35 {I I RM ADDRESS AIB'O DEV IDIEFITYPEI OR I I {INDEX j REL BLOCK# .CALL WORD TABLE ENTRY A=O -,RNI e REENTRANT a=o ;REENTRANT D=l ,PATCH ExIsTs TYPE: I- SSA PMENI E'II mm IIHIII SHEET (18 0F 54 302 LOWER HALF ssA UPPER HALF ssA .ssA ICEI STACK POINTER 776000 305i, SREG STACK ]l777o00 ssA+| .SREG STACK POINTER 77so0| 777037 g; 776002 .sTATE SLAVE STATUS wORD 777040 30% sf 3|4 ale-k STACK .SSTAK 777052 M 7760l4 303 STACK .SCKS CHECKSUM WORD CONTROL WORDS 777054 .sNTRY, .SNTRY WORD 7T 0|5 777055 312 292-- .SREG STACK ,4. a CONTROL WORDS 777057 3I6L .SALIM BAR AND BOUND 777063 INFORMATION 7770 4 SSA .sNPAT, NUMBER OF USER PATs 777070 MODULE REG'ON 777m .SLOAD" MODULE NUMBER 777 40 .SICI 51 1 -777I44 a2s- BLOCK 777'52 .STEMP STEMP 777156 327 B LOCK 77720| .SMDSK SMDSK J 777203 320 BLOCK 777210 usER 9. PAT s PAT BODY

PAT POINTERS .STPPT J "mo .SSAPA SYSTEM MODULE 777760 334 PAT 77677 7 EX PANDE D SLAVE ROGRAM SLAVE SERVICE AREA (SSA) PATENIEU IIIIII2 [971 sum u? U? 54 O I? 29 35 I7 29 35 POINTER TALLY I .ssA POINTER EID .SSTAK .ssA wORD .ssA POINTER EDI .SSTAK+| 0 I? 29 35 I I I .ssA POINTER I I I .SSTAK+2 .SREG POINTER TALLY :A=8 I I I0 I STACK CONTROL WORDS .ssA+I wORD e 29 35 0 I? as I .ssA+I POINTER :sD .SREGS C(IC) I C(IR) g .ssA+I POINTER I :AD .sREOs+I IC$I STACK wORD O 35 .ssA+I POINTER E 1 sREOs+2 MODULE CHECKSUM .SREG STACK CONTROL WORDS .SCKSM mm 0 T I6 35 0 l7 LAL EEBOUND .SALIM-H MODULE MODULE 'TYP 'O'B'A I LENGTH I I BAR AND BOUND INFORMATION .sNTRY wow 0 35 MODULE :ENTRY P0|NT# sLOAD+I A=O ,REENTRANT TYPE: I-ssA B=| ,MODULE BUSY 2- RM MODULE LOADING wORD 04 I7 as 35 F SCT POINTER I C(XO) I cm) I I 00(2) 5 C(X3) BAsIc PAT ENTRY C(X4) i C(XS) 0 5 7 24 35 I PARTIAL OFFSET 1 i I I I 60(7) i To PAT E:FJ,G:H:|:JE FILE CODE Cm PAT POINTER x2; I C(E) i OOO ..OOO

.L 7 220222 OITRI I 000 ..OOO]

.SREG STACK ENTRY O 2 4 e 8 IO IBI9 24 29 iiiiiiiiii 5 5 i OINTERTO PRIMARIYT' 35 SCTFORMODULE E .STATE wORD .ssAPA+I BIT 2 ssA BEING LOADED .ssAPA+2 BIT 4 GEPR REQUIRED BIT s 1 ABORT REQUIRED ssAPA+3 3H IIIIIITEI I CTIPIIIIIG I I a}; :8 1 l Twg PERMITTED LINK :NUMBER OF LINKS .SSAPA+4 BIT 24 E MME PROHIBITED W BIT 29 BAR CHANGED WORD STRUCTURE-SSA ENTRIES PATENTEnIIIwz IEIII 3.618.045

SHEET 08 HF 54 sLAvE PROGRAM "x" (SLAVE PROGRAM REGION) A SLAVE PROGRAM IN EXECUTION REQUIRES THE OPERATING SYSTEM TO IDENTIFY THE I/O APPARATUS ASSIGNED TO SERVICE A PARTICULAR FILE.

I. CODE OF FILE- Q 2.MME GEFADD INSTRUCTION EXECUTED 3. FAULT PROCEDURE INITIATED FAULT PROCESSOR (RM) 402 I. sTORE REGISTERS AT TIME OF MME ON TOP OF .SREG STACK OF ssA "x"; .SREG STACK PUSHED DOwN 2. IDENTIFY FAULT AS MME 3.STORE ADDRESS(LIOF MME INsTRUcTION AND C(IRI AT TIME OF MME ON TOP OF IC$I STACK OF SSA "x" 1c$1 STACK PUSHED DOwN 4.MOVE FILE CODE FROM .SREG STACK TO .STEMP BLOCK 5.ADDRESS OF ENTRY POINT wORD OF REQUIRED MODULE (.MFLTI)- A DISPATCHER I (RM) I. DETERMINE THAT .MFLTI MODULE Is ssA MODULE 2..MFLTI ENTRY POINT wORD .sLOAO+I 3.MOVE FILE CODE FROM .STEMP BLOCK TO 0 4. sTORE REGISTERS OF DISPATCHER sTATE AT THIS TIME ON TOP OF .SREG STACK OF SSA"X"; .SREG STACK PUSHED DOwN (DIsPATcHER sTATE sAvED FOR UsE IF MODULE MUST BE OBTAINED FROM AUXILIARY STORE) 5.TEST .sNTRY TO DETERMINE WHETHER MODULE IN SSA "x" IS BusY @DMODULE FOUND NOT BUsY .DETERMINE WHETHER MODULE IN ssA"x" IS .MFLTI IS .MFLTI NOT .MFLTI OPERATING SYSTEM RETRIEVES .MFLTI MODULE FROM AUXILIARY STORE AND LOADS IT INTO "XII PATENTEDNIIIIZ 19?! 3,618,045

SHLET 09 [1F 54 FGAD SUBROUTINE (SSA) I. RETRIEvE FILE coDE FROM ISTEMP BLOCK 2.USE FILE CODE TO DETERMINE IDENTITY 0F I/O APPARATUS, IF ANY, ASSIGNED T0 SERVICE FILE 31/0 APPARATUS IDENTITY- A-O 4. sToRE A-Q IN REGISTER BLOCK cuRRENTLY ON TOP OF .SREG STACK OF SSA "x".

5. TRANsFER BACK TO DISPATCHER DISPATCHER (RM) I. RETRIEvE C(IR) AT TIME OF MME FROM TOP OF 1c $1 sTAcK- A 2. TEST A TO DETERMINE WHETHER SSA MusT BE POPPED UP POP-UP NOT REQUIRED 3, TRANSFER TO .SICI SEQUENCE IN SSAIIXII .SICI SEQUENCE (SSA) LREsToRE REGISTERS FROM TOP OF .SREG STACK OF SSA"X"; .SREG

sTAcK POPPED UP;

1/0 APPARATUS |DENTlTY A-Q 2.LOAD IC AND IR FROM TOP OF IC$I STACK 3 TRANsFER BACK TO SLAVE PROGRAM "x" TRANSFER CONTROL TO sLAvE PROGRAM"X" PAIENIEDNUVZ l9?! 3,618,045

SHEET 10 0F 54 sLAvE PROGRAM "Y" (sLAvE PROGRAM REGION) 42 A SLAVE PROGRAM IN EXECUTION REQUIRES THE OPERATING SYSTEM TO ALLOCATE MORE AUXILIARY STORAGE SPACE (LINKSITO A PARTICULAR FILE I. CODE OF FILE Q 2.MME GEMORE INSTRUCTION EXECUTED (INSTRUCTION AT ADDRESS LI 3. IDENTITY OF AUXILIARY STORE AND NUMBER OF LINKS TO BE ADDED PREVIOUSLY STORED AT ADDRESS L+I 4. FAULT PROCEDURE INITIATED I. STORE REGISTERS AT TIME OF MME ON TOP OF .SREG STACK OF SSA"Y"; .SREG STACK PUSHED DowN 2.IDENTIFY FAULT As MME 3.5TORE ADDRESS (LI OF MME INsTRUcTIoN AND C(IRI AT TIME OF MME ON TOP OF ICEI STACK OF ssA"Y",-1c$I STACK PUSHED DOWN 4. MovE FILE CODE FROM .SREG STACK To .STEMP BLOCK 5. ADDRESS OF ENTRY POINT WORD OF REQUIRED MODULE (.MMoRE)- A DISPATCHER (RM) 423 I. DETERMINE THAT .MMoRE MODULE IS ssA MODULE 2. .MMoRE ENTRY POINT woRD .sLoAD+I 3. MOVE FILE CODE FROM .STEMP BLOCK TO 0 4. STORE REGISTERS OF DISPATCHER STATE AT THIS TIME ON TOP OF .SREG STACK OF SSA"Y"; .SREG STACK PUSHED DOWN (DISPATCHER sTATE SAVED FOR UsE IF MDDULE MUST BE OBTAINED FROM AUXILIARY sToRE) 5. TEsT .sNTRY To DETERMINE WHETHER MODULE IN ssA "Y" Is BUSY MODULE FOUND NoT BUSY DETERMINE WHETHER MoDULE IN SSA"Y" Is .MMORE IS .MMORE NOT IMMORE AND LOADS IT INTo ssA"Y" II I9a PATENTEUNUVZ |97l 3,618,045

SHLET 11 0F 54 DIS PATCHER (RM) I. REsTORE REGISTERS R M TOP OF .sREs STACK OF ssA Y .SREG sTAcI POPPED UP 2. FILE cODE IN Q .sTEMP BLOcI MODULE TO BE ENTERED NOT FROM ssA POP-UP 3. GENERATE ADDREss OF ENTRY POINT INTO .MMORE MODULE IN A 4. TRANSFER TO ENTRY POINT IN .MMORE MODULE .MMORE MODULE (SSI Q) I. RETRIEvE ADDRESSILI OF MME INSTRUCTION FROM 1C6: STACK OF ssA "Y" 2. MOVE AUXILIARY sTORE IDENTITY AND REQUIRED NUMBER OF LINKS FROM ADDRESS (L+I)TO A 3.DETERMINE THAT sPAcE REQUIRED IS IN AUXILIARY STORE 4. NUMBER OF LINKS REQUIRED- 0 5.cALLTO DISPATCHER TO PROVIDE FOR ExEcUTION OF .MALC5 MODULE FROM ENTRY POINT 3 DISPATCHER (RM) I. sTOREADDREss+I OF cALL POINT FROM .MMORE ON TOP OF 1c $1 STACK OF SSN'Y"; STACK PUsHED DOWN 2. NUMBER OF LINKS REQUIRED- 5TEMP BLOCK 3..MALC5 ENTRY POINT wORD- A 4 DETERMINE THAT -MALcs MODULE Is ssA MODULE 5. .MALcs ENTRY POINT wORD .sLOAD+I 6.MOVE NUMBER OF LINKS REQUIRED FROM .sTEMP BLOCK TO Q 7 sTORE REOIsTERs OF DISPATCHER sTATE AT THIS TIME ON TOP OF .SREG STACK OF SSA "Y"; .SREG STACK PUSHED DOwN 8. TEsT .sNTRY TO DETERMINE WHETHER MODULE IN ssA"Y"(.MMORE) Is BUSY MODULE FOUND BUSY wOPERATINO sYsTEM PUsHEs DOWN .MMORE MODULE IN SSA MODULE STACK OF AUXILIARY STORE 429-0PERATING SYSTEM RETRIEvEs .MALcs MODULE FROM AUXILIARY STORE AND LoADs IT INTO SSA "Y", OVERLAYING .MMORE MODULE PATENTE0IIIIII2 IBII 3,618,045

SHEET 12 0F 54 DISPATCHER (RM) 430 l. REsToRE REGISTERS FROM TOP OF g5 .SREG STACK OF SSA"Y"; .SREG STACK POPPED UP 2.NUMBER OF LINKS REQUIRED IN o- .sTEMP BLOCK MoDULE TO BE ENTERED NoT FROM SSA POP-UP 3 GENERATE ADDREss 0F ENTRY POINT INTo .MALC5 MODULE IN A (ADDREss OF C000 SUBROUTINE) 4.TRANSFER To 0000 SUBROUTINE CQOO SUBROUTINE (SSA) I. RETRIEVE NUMBER OF LINKS REQUIRED FROM .STEMP BLOCK 2. DETERMINE WHETHER REQUIRED NUMBER OF LINKS AVAILABLE 3. IF REQUEST CAN BE SATISFIED DELETE LINKS ASSIGNED FROM TABLE OF AVAILABLE LINKS 4. TRANSFER BACK TO DISPATCHER FROM EXIT POINT 2 DENOTING ALLOCATION REQUEST WAS SATISFIED DISPATCHER I (RM) HQ/LII. ExIT NUMBER 2 FROM .MALC5 0 2.RETRIEvE IC ET FROM TOP OF ICI STACK; I081 STACK POPPED UP 3.GENERATE RETURN ADDREss To .MMORE MODULE FROM RETRIEvED C(IC) AND EXIT NUMBER; (CALL ADDREss+3I A 4. REsToRE 1c 8r INCLUDING RETURN ADDREss,To .MMoRE T0 TOP OF IC 1 STACK OF SSAI'Y"; [C61 STACK PUSHED DOWN 5. TESTATO DETERMINE WHETHER ssA MUST BE POPPED UP POP-UP REQUIRED s. FILL .sLoAD+I WITH zERos TO DENDTE POP-UP 7. STORE RECIsTERs OF DISPATCHER sTATE AT THIS TIME ON TOP DF .SREG STACK OF SSA"Y"; .SREG STACK PUSHED now 433 /-OPERATING SYSTEM POPS UP ssA MoDULE STACK AND LoADsMMoRE MoDULE INTO ssA'Y",0vERLAYINC .MALC5 MODULE EE S/C PATENTEDnuvz 19?! 3,618,045

sum 130F541 DISPATCHER I (RM) ES"- I. RESTORE REGISTERS FRoM TOP DF .sREe STACK OF SSA"Y"; .SREG STACK POPPED UP 6 9 MODULE TO BE ENTERED Is FRoM ssA POP-UP 2.TRANsFER To .SICI SEQUENCE IN SSA"Y" .SICI SEQUENCE (SSAI 435. I. RETURN ADDRESS TO .MMORE IC 2.TRANSFER BACK TO .MMORE MODULE .MMORE MODULE (SSA) 436 l. ENTER .MMORE AT POINT FOR PROCESSING SUCCESSFUL ALLOCATION ZADJUST PAT FILE SPACE DESCRIPTION TO REFLECT NEWLY-ALLOCATED LINKS 3.TRANSFER BACK TO DISPATCHER FROM EXIT POINT 3 DENOTIN'G REQUEST SATISFIED DISPATCHER (RM) 437, EXIT NUMBER 3 FRoM .MMDRE Q 4 3 g' 2.RETRIEvE 1c 61 FROM TOP OF 10 $1 STACK; ICEI STACK POPPED UP 3. GENERATE RETURN ADDREss T0 SLAVE PROGRAM FRoM RETRIEvED cue) AND ExIT NUMBER; sToRE IN A 4. REsTDRE 1e61, INCLUDING RETURN ADDREss TO sI AvE To TOP OF 10: STACK 0F SSA"Y";IC $1 sTAcK PUSHED DOWN 5.TEST A TO DETERMINE WHETHER SSA MUST BE POPPED UP POP-UP NoT REQUIRED 6 TRA S ER TO .SICI SEQUENCE IN ssA Y I. REsToRE REGISTERS FRoM TOP OF .SREG STACK OF SSA"Y"; .SREG STACK POPPED UP 2.LOAD 10 AND IR FROM TOP OF IC$I STACK 3. TRANSFER BACK TO SLAVE PROGRAM "Y" AT POINT FDR PROCESSING SUCCESSFUL ALLOCATION TRANSFER CONTROL TO SLAVE PROGRAM"Y" PATENTEumwz I97! 3,618,045

sum 1a or 54 SLAVE PROGRAM 2 SLAVE PROGRAM Y PATENTEDNEHIE WI 3,618,045

sum 15 or 54 TO MEMORY CONTROLLERS TO MEMORY CONTROLLERS m 0 2? To MEMORY COMMAND REGISTER CONTROLLERS Q 543 COMMAND oecooe CH A cH B LOG'C PRO r IA-A IA-IB CONTROL CONTROL FROM MEMORY k AND F ma CONTROLLERS TIMING Tl $0: LOGIC i SIGNALS x13 $03:

532 f5 sw CSHEALNENCETL 549 LOGIC 5W8 BC COMPARATOR 5 I Rs CHA CH a o 2 OX8 54a 560 ---4 RS ADDER y; T 5? A 563 530i 544 564 TO MEMORY 5 5 CONTROLLERS 5 ADR 0 CT 5 4 (l8 LINES) AW 0 I DATA PROCESSOR .,.-,rv w 54o Ira 11 a. 21 SWITCH PATENTEDNUVZ l9?! 3 51 045 SHEET 1E 0F 54 5|6- EXP REGIsTER IND REGISTER TIMER 522 o 23 A i Q o 35:36 7| 523 x REGISTER I .7-- 546 XIREGISTER '.L E I M U x REGISTER -7 0 2 I? T a 0 x; REGIsTER G 8 i x REGISTER x REGISTER M-REGISTER 0 5 0 7| 0 x REGIsTER I x REGISTER 525 0 7 T BAR ZX SWITCH 5 I U E V L W V... ".v W L U) 560 526 8 ET: N r YS ADDER sso 6 5|4 5!5 0 7 OUTPUT CHANNEL A OUTPUT CHANNEL B W TO MEMORY CONTROLLER 40 FROM MEMORY CO NTROLLER 4O FROM MEMORY 81518} 5 jasi Q Q Q Q Q 0 O L J J TO MEMORY CONTROLLER 4| Jrza-14b PATENIEB Huv2 |97i SHEET 17 [1F 54 PROCESSOR-O.I

C(QI Qo 23=O ;Q24 35 HOLDS 2 CHARACTER FILE CODE FORCED c+4 .MFALT 3+4 FICI c+5 .MFALT m FVCTI FVCTI FPRC |l|6 FALT n32 .MFALT x50 STCI FPRC F|Cl4 us: I .MFALT FPRCI FPRCI n34 .MFALT 55E FREG PRIMARY FAULT VECTOR-LEAVES UNIQUE TRAIL To IDENTIFY FAULT AS MME FAULT OF PROCESSOR-P.

l CIlRI2 MASTER MODE ENTERED "m7" IS STORED TO PROVIDE A RECORD THAT .MFALT WAS ENTERED FROM AN MME FAULT IN PRocEssoRP SECONDARY FAULT VECTORTRANSFERS CONTROL TO PORTION OF .MFALT COMMON TO ALL FAULTS OCCURRING IN PROCESSOR-P SAVE REGISTERS OF PROCESSOR-P AT TIME OF MME C(REG S)- C(FREG)- CI REG +7) PATENTEDIIIIII2 l97| 3,618,045

SHEET 1a or 54 n35 .MFALT SBAR sAvE BASE ADDRESS REGISTER (BAR) 0F PROCESSOR-P AT TIME oF MME FBAR c(BAR) c(FeAR) H36 .NIFALT SZN sET"o" INDICATOR ACCORDING TO -PROGRAM NUMBER CONTENTS OF ENTRY-P 0F .CRPRG TABLE DISPATCHER RUNNING #0 PROGRAM RUNNING I|40 .MFALT sToRE REGISTERS oF PROCESSOR-P SREG AT TIME OF MME ON TOP OF .SREG STACK oF PROGRAM IN ExEcuTIoN IN .C R J PROCESSOR-P.

.SREG STACK PUSHED DOWN |I4l ,MFALT LOX? LOAD x1 WITH NUMBER (P) 0F FAULTING PROCESSOR 0,0u O- C(XT) n42 .MFALT LOAD T Y LCQ FAuLT vEcToR TABLE BASE (FvcTI)+I INTo o. T7essI c(o) Fsvo+2. C(Q)U T0 as useo TO DESF'ERMINE FAuLT TYPE N4: .MFALT TRA TRANsFER To "FLT" SUBROUTINE FoR FLT PROCESSING ALL FAuLTs PATENTEU NDV2 IEITI FLT I04 SHEET 1 9 .M FALT ADLQ FICI4,7

.MFALT sTo FICI4,?

SZN

DISPATCHER RUNNING #0 PROGRAM RUNNING SUBROUTINE FAULTS INITIATED IN DISPATCHER FOR PROCESSING PREVIOUSLY STORED CONTENTS OF FICI4 ADDED TO 0 TO PROVIDE CODE FOR ORIGINATING FAULT; FOR MME, CODE=O.

I I I 7+77666I OOOOOO- C(QI :J'INDICATOR GOES ON IF FAULT wAs EXECUTE TYPE TRANSFER TO SUBROUTINE FOR PROCESSING EXECUTE TYPE FAULTS sET"o" INDICATOR ACCORDING TO PROGRAM NUMBER CONTENTS 0F ENTRY-P 0F .CRPRG TABLE .CRPRG,7

LOAD X6 WITH PROGRAM NUMBER (PN) OF FAULTING PROGRAM CI .CRPRG) CI GI I55 .MFALT LDX5 .CRLAL,6

LOAD X5 WITH LOWER ADDRESS LIMIT (LALIOF FAULTING PROGRAM FROM CORRESPONDING ENTRY OF .CRLAL TABLE C(.CRLAL+ PN) C(X5I 

1. In a multiprogrammed system including a storage member adapted to store slave program parts and privileged slave program parts, the data words comprising each of said program parts member in a block of contiguous cells and including a plurality of instructions, each of said instructions including an order portion denoting the type of operation the instruction is to control and an address portion representing the address of a cell of said storage member whose contents are to be affected by said operation and a data processor coupled to said storage member for executing program parts by retrieving the instructions thereof in succession from said storage member and by performing the operation denoted by the order portion of each of said instructions on the contents of the cell represented by the address portion of said instruction, a process comprising said processor during execution of each one of said slave program parts interpreting all of said address portions thereof as representing the location of corresponding cells relative to a predetermined reference cell of the block holding said one slave program part, and said processor during execution of each one of said privileged slave program parts interpreting said address portions thereof (a) as representing the location of corresponding cells relative to a predetermined reference cell of the block holding said one privileged slave program part if a first instruction is present in said privileged slave program part or (b) as the actual adDresses of the corresponding cells if a second instruction is present in said privileged slave program part.
 2. The process of claim 1, wherein at least one of said slave program parts and at least one of said privileged slave program parts concurrently occupy said storage member in respective blocks of contiguous cells of said member.
 3. In a multiprogrammed system including a storage member adapted to store slave program parts and privileged slave program parts, the data words comprising each of said program parts including a plurality of instructions, each of said instructions including an order portion denoting the type of operation the instruction is to control and an address portion representing the address of a cell of said storage member whose contents are to be affected by said operation and a data processor coupled to said storage member for executing program parts by retrieving the instructions thereof in succession from said storage member and by performing the operation denoted by the order portion of each of said instructions on the contents of the cell represented by the address portion of said instruction, a process comprising said processor during execution of each one of said slave program parts interpreting all of said address portions thereof as representing the location of corresponding cells relative to a predetermined reference cell of the block holding said one slave program part, and said processor during execution of each one of said privileged slave program parts normally interpreting said address portions thereof as representing the location of corresponding cells relative to a predetermined reference cell of the block holding said one privileged slave program part and interpreting said address portions as the actual addresses of the corresponding cells in response to predetermined instructions of said privileged slave program part.
 4. In a multiprogrammed system including a storage member adapted to store slave program parts and privileged slave program parts, the data words comprising each of said program parts including a plurality of instructions, each of said instructions including an order portion denoting the type of operation the instruction is to control and an address portion representing the address of a cell of said storage member whose contents are to be affected by said operation and a data processor coupled to said storage member for executing program parts by retrieving the instructions thereof in succession from said storage member and by performing the operation denoted by the order portion of each of said instructions on the contents of the cell represented by the address portion of said instruction, a process comprising the steps of said processor generating a first control signal in response to predetermined instructions of certain of said program parts, storing a control indicium in said storage member for each of said program parts permitted to employ said predetermined instructions, said processor generating a second control signal in response to said first control signal and a control indicium for the corresponding program part, and said processor during execution of each one of said program parts normally interpreting said address portions thereof as representing the location of corresponding cells relative to a predetermined reference cell of the block holding said one program part and interpreting said address portions as the actual address of the corresponding cells in response to said second control signal.
 5. The process of claim 4, wherein said control indicia are stored in said storage member only for said privileged slave program parts.
 6. In a multiprogrammed system including a storage member adapted to store slave program parts and privileged slave program parts, the data words comprising each of said program parts including a plurality of instructions, each of said instructions including an order portion denoting the type of operation the instruction is to control and an address portion representing the address of a cell of said storage member whose contents are to be affected by said operation and a data processor coupled to said storage member for executing program parts by retrieving the instruction thereof in succession from said storage member and by performing the operation denoted by the order portion of each of said instructions on the contents of the cell represented by the address portion of said instruction, a process comprising generating a base address for the program part being executed by said processor, said base address being the address of a cell of the block holding said program part being executed, said processor during execution of each one of said slave program parts adding said address portions thereof to the corresponding base address to provide the location of corresponding cells, and selectively controlling said processor during execution of each one of said privileged slave program parts to either (a) add said address portions thereof to the corresponding base address to provide the location of corresponding cells or (b) utilize said address portions as the actual addresses of the corresponding cells.
 7. In a multiprogrammed system including a storage member adapted to store slave program parts, privileged slave program parts, and management control program parts, the data words comprising each of said program parts including a plurality of instructions, each of said instructions including an order portion denoting the type of operation the instruction is to control and an address portion representing the address of a cell of said storage member whose contents are to be affected by said operation and a data processor coupled to said storage member for executing program parts by retrieving the instructions thereof in succession from said storage member and by performing the operation denoted by the order portion of each of said instructions on the contents of the cell represented by the address portion of said instruction, a process comprising said processor during execution of each one of said slave program parts interpreting all of said address portions thereof as representing the location of corresponding cells relative to a predetermined reference cell of the block holding said one slave program part, said processor during execution of each one of said privileged slave program parts selectively interpreting said address portions thereof either (a) as representing the location of corresponding cells relative to a predetermined reference cell of the block holding said one privileged slave program part or (b) as the actual addresses of the corresponding cells, and said processor during execution of each one of said management control program parts interpreting all of said address portions thereof as the actual addresses of the corresponding cells.
 8. The process of claim 7, wherein at least one of said management control program parts and at least one of said slave or privileged slave program parts concurrently occupy said storage member in respective blocks of contiguous cells of said member.
 9. In a multiprogrammed system including a storage member adapted to store a plurality of program parts, the data words comprising each of said program parts including a plurality of instructions, each of said instructions including an order portion denoting the type of operation the instruction is to control and an address portion representing the address of a cell of said storage member whose contents are to be affected by said operation and a data processor coupled to said storage member for executing program parts by retrieving the instructions thereof in succession from said storage member and by performing the operation denoted by the order portion of each of said instructions on the contents of the cell represented by the address portion of said instruction, a process comprising storing a plurality of operating system program parts in a predetermined first portion of said storage member, storing at least one of a user program part or an operating system program part in any available block of contiguous cells of the remaining portion of said storage member, said processor during execution of a user program part interpreting all of said address portions thereof as representing the location of corresponding cells relative to a predetermined reference cell of the block holding said user program part, said processor during execution of an operating system program part stored in said remaining portion of said storage member selectively interpreting said address portions thereof either (a) as representing the location of corresponding cells relative to a predetermined reference cell of the block holding said operating system program part or (b) as the actual addresses of the corresponding cells, and said processor during execution of an operating system program part stored in said first portion of said storage member interpreting all of said address portions thereof as the actual addresses of the corresponding cells.
 10. In a multiprogrammed system including a storage member adapted to store slave program parts and privileged slave program parts, the data words comprising each of said program parts including a plurality of instructions, each of said instructions including an order portion denoting the type of operation the instruction is to control and an address portion representing the address of a cell of said storage member whose contents are to be affected by said operation and a data processor coupled to said storage member for executing program parts by retrieving the instructions thereof in succession from said storage member and by performing the operation denoted by the order portion of each of said instructions on the contents of the cell represented by the address portion of said instruction, said processor comprising a base address register and an adder, said base address register holding the actual address of a reference cell of the block holding the program part being executed by said processor, a process comprising said processor during execution of each one of said slave program parts controlling said adder to add the address portion of each of said instructions to the contents of said base address register to provide the location of the corresponding cell, and said processor during execution of each one of said privileged slave program parts selectively operating either (a) to control said adder to add the address portion of each of said instructions to the contents of said base address register to provide the location of the corresponding cell part or (b) to utilize said address portions as the actual addresses of the corresponding cells. 